/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 苏李涛
 * Date: 2024-10-09
 * Time: 0:44
 */

/**
 * 大数加法:
 *
 * 以字符串的形式读入两个数字，编写一个函数计算它们的和，以字符串形式返回。
 *
 * 数据范围：
 * s
 * .
 * l
 * e
 * n
 * g
 * t
 * h
 * ,
 * t
 * .
 * l
 * e
 * n
 * g
 * t
 * h
 * ≤
 * 100000
 * s.length,t.length≤100000，字符串仅由'0'~‘9’构成
 * 要求：时间复杂度
 * O
 * (
 * n
 * )
 * O(n)
 * 示例1
 * 输入：
 * "1","99"
 * 复制
 * 返回值：
 * "100"
 * 复制
 * 说明：
 * 1+99=100
 * 示例2
 * 输入：
 * "114514",""
 * 复制
 * 返回值：
 * "114514"
 */
public class SumBigNum {
    public String solve (String s, String t) {
        StringBuilder ret = new StringBuilder();
        int i = s.length()-1,j = t.length()-1;
        int tmp = 0;//进位的数

        while(i >= 0 || j >= 0 || tmp != 0){
            if(i >= 0) tmp += s.charAt(i--) - '0';//注意字符转数字
            if(j >= 0) tmp += t.charAt(j--) - '0';
            //处理进位和，tmp相加后的结果
            ret.append((char)(tmp % 10 + '0'));//注意数字转化为数字字符 + ‘0’；
            tmp /= 10;
        }

        return ret.reverse().toString();
    }
}
